﻿CREATE PROCEDURE [dbo].[CarregarCliente]
    @numero INT,
    @data DATE,
    @nome VARCHAR(50),
    @telefone VARCHAR(15),
    @contato BIT,
    @tipo VARCHAR(50),
    @marca VARCHAR(50),
    @modelo VARCHAR(50),
    @situacao VARCHAR(20)
AS

SET NOCOUNT ON

IF  @numero IS NULL
    AND @tipo IS NULL
    AND @marca IS NULL
    AND @modelo IS NULL
    AND @situacao IS NULL
BEGIN

    SELECT
        CodCliente,
        DataInclusao,
        Nome,
        Telefone1,
        Telefone2,
        Telefone3,
        Contato,
        Telefone4,
        Telefone5,
        Telefone6
    FROM
        Cliente
    WHERE
        CAST(DataInclusao AS DATE) = ISNULL(@data, CAST(DataInclusao AS DATE))
        AND Nome LIKE ISNULL('%' + @nome + '%', Nome)
        --AND Telefone1 = ISNULL(@telefone, Telefone1)
        -- Verificar @contato e filtrar nome do contato também

END
ELSE BEGIN

    SELECT DISTINCT
        Cliente.CodCliente,
        Cliente.DataInclusao,
        Cliente.Nome,
        Cliente.Telefone1,
        Cliente.Telefone2,
        Cliente.Telefone3,
        Cliente.Contato,
        Cliente.Telefone4,
        Cliente.Telefone5,
        Cliente.Telefone6
    FROM
        Cliente
        INNER JOIN Servico ON Cliente.CodCliente = Servico.CodCliente
    WHERE
        CAST(Cliente.DataInclusao AS DATE) = ISNULL(@data, CAST(Cliente.DataInclusao AS DATE))
        AND Cliente.Nome LIKE ISNULL('%' + @nome + '%', Cliente.Nome)
        --AND Cliente.Telefone1 = ISNULL(@telefone, Cliente.Telefone1)
        -- Verificar @contato e filtrar nome do contato também
        AND Servico.CodServico = ISNULL(@numero, Servico.CodServico)
        AND Servico.Tipo = ISNULL(@tipo, Servico.Tipo)
        AND Servico.Marca = ISNULL(@marca, Servico.Marca)
        AND Servico.Modelo = ISNULL(@modelo, Servico.Modelo)
        AND ISNULL(Servico.Situacao, '') = ISNULL(@situacao, ISNULL(Servico.Situacao, ''))

END